<?php
    function pendientes_admin($accion = null, $id = null)
    {
        switch($accion)
        {
            case 'admin'  : return drupal_get_form('pendientes_form_ver', $id);
            case 'agregar': return drupal_get_form('pendientes_form_agregar_pendiente',
                                                   'agregar');
            case 'editar' : return drupal_get_form('pendientes_form_agregar_pendiente',
                                                   'editar' , $id);
            case 'ver'    : return pendientes_ver();
        }
    }
        
    /**
     * Formulario para agregar un nuevo pendiente.
     * @ingroup forms
     */
    function pendientes_form_agregar_pendiente($form_id, $accion = 'agregar', $pid = null)
    {
        /* regiones */
        for($i = 1; $i <= 19; $i++)
            $regiones[$i] = $i;
        
        /* tipos dependiente */
        $tipos = array(1 => "Avisos",
                       2 => "Folios pendientes de enviar notificaciones",
                       3 => "Folios para seguimiento",
                       4 => "Actividades O.T.");
        
        /* estados de los pendientes */
        $estados = array(1 => "En ejecución",
                         2 => "Exitosa",
                         3 => "Sin éxito",
                         4 => "Pendiente de ejecutar");

        /* valores por defecto */
        if($accion == 'editar')
        {
            $sql = "SELECT * FROM {pendientes} WHERE id_pendiente = %d";
            $r = db_query($sql, $pid);
            $d = db_fetch_array($r);
            
            /* almacena el identificador para usarlo al hacer el "update" en la BD */
            $form['pid'] = array('#type' => 'value', '#value' => $pid);
        }
        else
            $d = array();  
         
        /* valores pasados por el formulario pero invisibles al usuario */
        $form['accion']   = array('#type' => 'value', '#value' => $accion);
        $form['estados']  = array('#type' => 'value', '#value' => $estados);
        $form['regiones'] = array('#type' => 'value', '#value' => $regiones);
        $form['tipos']    = array('#type' => 'value', '#value' => $tipos);
        
        /* tipo de seguimiento */
        $form['tipo'] = array('#default_value' => $d['tipo'],
                              '#description'   => "Selecciona el tipo de seguimiento.",
                              '#options'       => $tipos,
                              '#required'      => true,
                              '#title'         => "Tipo de seguimiento",
                              '#type'          => 'select');

        /* identificador para la región */
        $form['region'] = array('#default_value' => $d['region'],
                                '#description'   => "Selecciona la región a la que perteneces.",
                                '#options'       => $regiones,
                                '#required'      => true,
                                '#title'         => "Región",
                                '#type'          => 'select');
        
        /* orden de trabajo */
        $form['orden'] = array('#default_value' => $d['orden'],
                               '#description'   => "Orden de trabajo.",
                               '#maxlength'     => 7,
                               '#size'          => 20,
                               '#title'         => "Orden de trabajo",
                               '#type'          => 'textfield');
        
        /* estado del pendiente */
        $form['estado'] = array('#default_value' => $d['estado'],
                                '#description'   => "Estado del pendiente.",
                                '#options'       => $estados,
                                '#title'         => "Estado",
                                '#type'          => 'select');
        
        /* elemento de red */
        $form['elemento'] = array('#default_value' => $d['elemento'],
                                  '#description'   => "Escribe el elemento de red.",
                                  '#maxlength'     => 7,
                                  '#size'          => 20,
                                  '#title'         => "Elemento de red",
                                  '#type'          => 'textfield');
        
        /* identificador de folio */
        $form['folio'] = array('#default_value' => $d['folio'],
                               '#description'   => "Escribe el folio.",
                               '#maxlength'     => 10,
                               '#size'          => 20,
                               '#title'         => "Folio",
                               '#type'          => 'textfield');
        
        /* nota para cada pendiente */
        $form['nota'] = array('#default_value' => $d['nota'],
                              '#description'   => "Nota para el pendiente (opcional).",
                              '#title'         => t("Nota"),
                              '#type'          => 'textarea');
        
        /* última notificación */
        $form['ultima_n'] = array('#default_value' => $d['ultima_notificacion'],
                                  '#description'   => "Última notificación (opcional).",
                                  '#title'         => "Última notificación",
                                  '#type'          => 'textarea');
        
        /* botón de envío */
        $form['envio'] = array('#type'  => 'submit',
                               '#value' => ($accion == 'editar') ?
                                           "Actualizar información" :
                                           "Añadir nuevo pendiente");

        return $form;
    }
    
    /**
     * Formulario que muestra todos los pendientes.
     * @ingroup forms
     */
    function pendientes_form_ver($form_id, $menu = '', $num_pend_pag = 5)
    {
        global $user;
        
        if($menu == 'user')
            drupal_set_title("Pendientes propios");
        else
            drupal_set_title("Pendientes, área ".$user->area);

        /* cabecera de la tabla */
        $cabecera = array
        (
            theme('table_select_header_cell'),
            array('data' => "Autor",               'field' => 'u.name'),
            array('data' => "Región",              'field' => 'p.region'),
            array('data' => "O. T.",               'field' => 'p.orden'),
            array('data' => "Estado",              'field' => 'p.estado'),
            array('data' => "Elemento",            'field' => 'p.elemento'),
            array('data' => "Folio",               'field' => 'p.folio'),
            array('data' => "Nota",                'field' => 'p.nota'),
            array('data' => "Última notificación", 'field' => 'p.ultima_notificacion'),
            array('data' => "Creado desde",        'field' => 'p.creado'),
            array('data' => "Última modificación", 'field' => 'ultima_modificacion',
                                                   'sort'  => 'desc'),
            ""
        );
        
        /* tipos dependiente */
        $tipos = array(1 => "Avisos",
                       2 => "Folios pendientes de enviar notificaciones",
                       3 => "Folios para seguimiento",
                       4 => "Actividades O.T.");

        /* estados de los pendientes */
        $estados = array(1 => "En ejecución",
                         2 => "Exitosa",
                         3 => "Sin éxito",
                         4 => "Pendiente de ejecutar");

        /* arreglo para los checkboxes */
        $checkboxes = array();

        if($menu == 'user')
        {
            /* consulta SQL de todos los pendientes creados por el usuario */
            $sql = "SELECT p.*, u.name FROM {pendientes} p, {users} u ".
                   "WHERE p.autor = u.uid AND autor = ".$user->uid.
                   " AND p.tipo = ";

            /* número total de elementos (usado para la paginación) */
            $count_query = "SELECT COUNT(*) FROM {pendientes} p, {users} u ".
                           "WHERE p.autor = u.uid AND autor = ".$user->uid.
                           " GROUP BY tipo HAVING tipo = ";
        }
        else
        {
            /* todos los pendientes registrados */
            $sql = "SELECT p.*, u.name FROM {pendientes} p, {users} u, {areas} a ".
                   "WHERE p.autor = u.uid AND p.autor = a.id_usuario ".
                   "AND a.id_area = ".$user->area." AND p.tipo = ";
        
            /* número total de elementos (usado para la paginación) */
            $count_query = "SELECT COUNT(*) FROM {pendientes} p, {users} u, {areas} a ".
                           "WHERE p.autor = u.uid AND p.autor = a.id_usuario ".
                           "AND a.id_area = ".$user->area." GROUP BY tipo HAVING tipo = ";
        }
        
        /* información enviada por el formulario pero invisible para el usuario */
        $form['cabecera'] = array('#type' => 'value', '#value' => $cabecera);
        $form['estados']  = array('#type' => 'value', '#value' => $estados);
        $form['menu']     = array('#type' => 'value', '#value' => $menu);
        
        /* 'fieldsets' para agrupar la información */
        foreach($tipos as $n => $v)
        {
            $form[$n] = array('#collapsed'   => false,
                              '#collapsible' => true,
                              '#title'       => $v,
                              '#type'        => 'fieldset',
                              '#weight'      => $n);

            $sql2 = $sql.$n;
            $cq = $count_query.$n;
            
            /* ordena la información de la tabla de acuerdo a la columna seleccionada */
            $sql2 .= tablesort_sql($cabecera);

            /* agrega la información al formulario */
            $r = pager_query($sql2, $num_pend_pag, $n, $cq);
            while($p = db_fetch_array($r))
            {
                /* agrega la información al arreglo $pendientes */
                $form[$n][$p['id_pendiente']] = array('#type'  => 'value',
                                                      '#value' => $p);
                $checkboxes[$p['id_pendiente']] = '';
            }

            /* elemento para cambiar de página */
            $form[$n]['paginador'] = array('#value' => theme('pager', NULL, $num_pend_pag, $n));
        }
        
        /* checkboxes */
        $form['checkboxes'] = array('#type' => 'checkboxes', '#options' => $checkboxes);

        /* botón de enviar */
        $form['borrar'] = array('#type'  => 'submit',
                                '#value' => "Borrar los pendientes seleccionados");
        
        return $form;
    }

    /**
     * Valida la información del formulario para agregar pendientes.
     * @see pendientes_form_agregar_pendiente()
     */
    function pendientes_form_agregar_pendiente_validate($form_id, &$form)
    {
        /* valida el tipo de pendiente */
        if(!array_key_exists($form['values']['tipo'], $form['values']['tipos']))
        {
            form_set_error('tipo', "Selecciona un tipo de la lista.");
            return;
        }
        else $tipo = $form['values']['tipo'];

            
        /* valida la región */
        if(!array_key_exists($form['values']['region'], $form['values']['regiones']))
            form_set_error('tipo', "Selecciona un tipo de la lista.");


        /* valida la orden de trabajo */
        if($tipo == 4)
        {
            if(strlen($form['values']['orden']) < 1)
                form_set_error('orden', "La órden de trabajo no puede ser vacía");
        }
        else $form['values']['orden'] = 0;


        /* validación del estado */
        if($tipo == 4)
        {
            if(!array_key_exists($form['values']['estado'], $form['values']['estados']))
                form_set_error('estado', "Selecciona un estado de la lista.");
        }
        else $form['values']['estado'] = 0;


        /* validación del elemento de red */
        if(in_array($tipo, array(2, 3, 4)))
        {
            if($form['values']['elemento'] == '')
                form_set_error('elemento',
                               "El elemento de red no puede estar vacío");
        }
        else $form['values']['elemento'] = "";

        
        /* validación del folio */
        if(in_array($tipo, array(2, 3)))
        {
            if($form['values']['folio'] == '')
                form_set_error('folio',
                               "El folio no puede estar vacío");
        }
        else $form['values']['folio'] = "";
        
        /* validación de la nota */
        if($tipo == 1)
        {
            if(strlen($form['values']['nota']) == 0)
                form_set_error('nota',
                               "Para los avisos el elemento nota no puede estár vacío.");
        }
    }

     /**
     * Procesamineto de la información del formulario para agregar pendientes.
     * @see pendientes_form_agregar_pendiente()
     */
    function pendientes_form_agregar_pendiente_submit($form_id, &$form)
    {
        /* inserta o edita la información dependiendo de la acción que se quiere */
        if($form['values']['accion'] == 'editar')
        {
            $sqlu = "UPDATE {pendientes} SET tipo = %d, region = %d, orden = '%s', ".
                    "estado = %d, elemento = '%s', folio = '%s', nota = '%s', ".
                    "ultima_notificacion = '%s', ultima_modificacion = %d ".
                    "WHERE id_pendiente = %d";

            $r = db_query($sqlu, $form['values']['tipo'],
                                 $form['values']['region'],
                                 $form['values']['orden'],
                                 $form['values']['estado'],
                                 $form['values']['elemento'],
                                 $form['values']['folio'],
                                 $form['values']['nota'],
                                 $form['values']['ultima_n'],
                                 time(),
                                 $form['values']['pid']);
    
            if($r)
                drupal_set_message("Pendiente editado corectamente");
            else
                drupal_set_message("Error al intentar editar el pendiente. ".
                                   "Verifique que tiene los permisos necesarios en la ".
                                   "base de datos", 'error');
        }
        /* inserta la información en la BD */
        else
        {
            /* datos del usuario */
            global $user;

            /* consulta SQL para almacenar en la BD */
            $sqli = "INSERT INTO {pendientes} VALUES (NULL, %d, %d, %d, '%s', %d, '%s', ".
                    "'%s', '%s', '%s', %d, %d)";

            $r = db_query($sqli, $user->uid,
                                 $form['values']['tipo'],
                                 $form['values']['region'],
                                 $form['values']['orden'],
                                 $form['values']['estado'],
                                 $form['values']['elemento'],
                                 $form['values']['folio'],
                                 $form['values']['nota'],
                                 $form['values']['ultima_n'],
                                 time(),
                                 time());
    
            if($r)
                drupal_set_message("Pendiente agregado corectamente");
            else
                drupal_set_message("Error al intentar agregar el nuevo pendiente. ".
                                   "Verifique que tiene los permisos necesarios en la ".
                                   "base de datos", 'error');
        }
        
        /* página que se muestra después de llenar el formulario */
        if(user_access('administrar pendientes'))
            drupal_goto('admin/pendientes/pendientes',
                        NULL,
                        'pend-'.$form['values']['tipo']);
        else
            drupal_goto('pendientes/admin',
                        NULL,
                        'pend-'.$form['values']['tipo']);
    }
    
    /**
     * Valida la información del formulario para agregar pendientes.
     * @see pendientes_form_ver()
     */
    function pendientes_form_ver_validate($form_id, &$form)
    {
        $form['values']['checkboxes'] = array_filter($form['values']['checkboxes']);
        $num = count($form['values']['checkboxes']);
        if($num == 0)
            form_set_error('checkboxes', 'No seleccionaste ningún pendiente.');
    }
    
    /**
     * Procesamineto de la información del formulario para ver todos los pendientes.
     * @see pendientes_form_ver()
     */
    function pendientes_form_ver_submit($form_id, &$form)
    {
        /* número de pendientes que se van a eliminar */
        $count = count($form['values']['checkboxes']);
        
        /* consulta SQL */
        $sql = "DELETE FROM {pendientes} WHERE id_pendiente IN (".
               implode(',', $form['values']['checkboxes']).")";

        /* ejecuta la consulta y muestra un mensaje */
        if(db_query($sql))
        {
            $count = db_affected_rows();
            drupal_set_message("Los $count pendientes seleccionados han sido eliminados.");
        }
        else
            drupal_set_message("Ocurrió un error al intentar eliminar los $count ".
                               "pendientes seleccionados. Por favor inténtelo ".
                               "nuevamente.", 'error');
    }
    
    function pendientes_form_eliminar_confirm($info = array())
    {
        $form['info'] = array('#type' => 'value',
                              '#value' => array_filter($info));

        return confirm_form($form,
                            '¿Estás seguro que deseas eliminar los '.
                            count(array_filter($info)).
                            ' pendientes seleccionados?',
                            'admin/pendientes/pendientes/agregar');
    }
    
    function pendientes_form_eliminar_confirm_submit($form, &$form_state)
    {
        $sql = "DELETE FROM {pendientes} WHERE id_pendiente = %d";

        $pendientes = $form['values']['info'];
        foreach($pendientes as $pid)
            dq_query($sql, $pid);

        drupal_set_message("Los pendientes seleccionados han sido eliminados");
    }
    
    /**
     * Tema del formulario para agregar pendientes.
     * @ingroup themeable
     * @see     pendientes_form_agregar_pendiente()
     */
    function theme_pendientes_form_agregar_pendiente($form)
    {
        /* añade la hoja de estilos del módulo */
        drupal_add_css(drupal_get_path('module', 'pendientes').'/pendientes.css');
        drupal_add_js(drupal_get_path('module', 'pendientes').'/pendientes.js');

        $html = '<div class="form-agregar-pendiente">'.
                '<div class="e1" id="frmTipo">'.drupal_render($form['tipo']).'</div>'.
                '<div class="e1" id="frmRegion">'.drupal_render($form['region']).'</div>'.
                '<div class="e1" id="frmOrden">'.drupal_render($form['orden']).'</div>'.
                '<div class="e1" id="frmEstado">'.drupal_render($form['estado']).'</div>'.
                '<div class="e1" id="frmElemento">'.drupal_render($form['elemento']).'</div>'.
                '<div class="e1" id="frmFolio">'.drupal_render($form['folio']).'</div>'.
                '<div class="separador"></div>'.
                '<div class="e2" id="frmNota">'.drupal_render($form['nota']).'</div>'.
                '<div class="e2" id="frmUltima">'.drupal_render($form['ultima_n']).'</div>'.
                '<div class="separador"></div>'.
                '<div class="envio">'. drupal_render($form['envio']).'</div>'.
                '</div>'.
                drupal_render($form);

        return $html;
    }
    
    /**
     * Tema para el formulario para ver todos los pendientes.
     * @ingroup themeable
     * @see     pendientes_form_ver()
     */
    function theme_pendientes_form_ver($form)
    {
        /* añade la hoja de estilos del módulo */
        drupal_add_css(drupal_get_path('module', 'pendientes').'/pendientes.css');
        
        /* estados de los pendientes */
        $estados = array(1 => "En ejecución",
                         2 => "Exitosa",
                         3 => "Sin éxito",
                         4 => "Pendiente de ejecutar");

        /* columnas (cabecera) */
        $c = $form['cabecera']['#value'];

        /* formateo de la información */
        foreach($form as $tid => $tval)
        {
            if(intval($tid))
            {
                /* creación de la cabecera de la tabla */
                switch($tid)
                {
                    case 1: $cabecera = array($c[0], $c[1], $c[9], $c[10], $c[7], '');
                            break;
                    case 2: $cabecera = array($c[0], $c[1], $c[2], $c[5], $c[6], $c[9],
                                              $c[10], $c[8], $c[7], '');
                            break;
                    case 3: $cabecera = array($c[0], $c[1], $c[2], $c[5], $c[6], $c[9],
                                              $c[10], $c[7], '');
                            break;
                    case 4: $cabecera = array($c[0], $c[1], $c[2], $c[5], $c[3], $c[9],
                                              $c[10], $c[7], $c[4], '');
                            break;
                }
                
                /* filas de la tabla */
                $filas = pendientes_render_fieldset($tid, $form);
                
                /* quita las opciones de borrado si el usuario no tiene los permisos */
                if($form['menu']['#value'] == 'user')
                {
                    array_shift($cabecera);
                    array_shift($cabecera);
                    foreach($filas as $id => $fila)
                    {
                        array_shift($filas[$id]);
                        array_shift($filas[$id]);
                        $filas[$id][count($filas[$id])-1] = str_replace('admin/pendientes/',
                                                                        '',
                                                                        $filas[$id][count($filas[$id])-1]);
                    }
                    $form['borrar']['#type'] = 'value';
                }
                
                /* tabla formateada */
                if(count($filas))
                {
                    $tmp = theme('table', $cabecera, $filas, array('id' => 'pend-'.$tid)).
                
                    /* controles de página */
                    drupal_render($form[$tid]['paginador']).'<br/>';
                }
                else $tmp = "";

                /* crea la tabla */
                $form[$tid]['#value'] = $tmp;
            }
        }

        /* botón de envío */
        $html .= '<div id="envio">'.
                 drupal_render($form['borrar']).
                 '</div>';
        
        /* regresa el código html del formulario */
        return drupal_render($form).$html;
    }
    
    /**
     * Crea las filas de las tablas para mostrar la información dentro de los fieldsets.
     * @param  $tid  Identificador para el tipo de pendiente.
     * @param  $form Todos los elementos del formulario.
     * @return array Arreglo con una fila en cada elemento del arreglo.
     */
    function pendientes_render_fieldset($tid, &$form)
    {
        $filas = array();
        foreach($form[$tid] as $pid => $pval)
        {
            if(intval($pid))
            {
                $pval = $pval['#value'];                
                /* filtra la información */
                switch($tid)
                {
                    case 1: $filas[] = array(
                                drupal_render($form['checkboxes'][$pid]),
                                l($pval['name'], 'user/'.$pval['autor']),
                                format_interval(time() - $pval['creado']),
                                'hace '.format_interval(time() - $pval['ultima_modificacion']),
                                $pval['nota'],
                                l('editar',
                                'admin/pendientes/pendientes/'.$pid.'/editar')
                             );
                             break;
                    case 2: $filas[] = array(
                                drupal_render($form['checkboxes'][$pid]),
                                l($pval['name'], 'user/'.$pval['autor']),
                                $pval['region'],
                                $pval['elemento'],
                                l($pval['folio'],
                                'http://10.225.173.209/GUIO_V3/Folios/P_Folio.cfm?KEY_FOLIO='.
                                $pval['folio'],
                                array('attributes' => array('target' => 'blank'))),
                                format_interval(time() - $pval['creado']),
                                'hace '.format_interval(time() - $pval['ultima_modificacion']),
                                $pval['ultima_notificacion'],
                                $pval['nota'],
                                l('editar',
                                'admin/pendientes/pendientes/'.$pid.'/editar')
                             );
                             break;
                    case 3: $filas[] = array
                            (
                                drupal_render($form['checkboxes'][$pid]),
                                l($pval['name'], 'user/'.$pval['autor']),
                                $pval['region'],
                                $pval['elemento'],
                                l($pval['folio'],
                                'http://10.225.173.209/GUIO_V3/Folios/P_Folio.cfm?KEY_FOLIO='.
                                $pval['folio'],
                                array('attributes' => array('target' => 'blank'))),
                                format_interval(time() - $pval['creado']),
                                'hace '.format_interval(time() - $pval['ultima_modificacion']),
                                $pval['nota'],
                                l('editar',
                                'admin/pendientes/pendientes/'.$pid.'/editar')
                             );
                             break;
                    case 4: $filas[] = array
                            (
                                drupal_render($form['checkboxes'][$pid]),
                                l($pval['name'], 'user/'.$pval['autor']),
                                $pval['region'],
                                $pval['elemento'],
                                l($pval['orden'],
                                'http://10.225.173.25/OT/Orden/P_Orden.cfm?ID_ORDEN='.
                                $pval['orden'],
                                array('attributes' => array('target' => 'blank'))),
                                format_interval(time() - $pval['creado']),
                                'hace '.format_interval(time() - $pval['ultima_modificacion']),
                                $pval['nota'],
                                $form['estados']['#value'][$pval['estado']],
                                l('editar',
                                'admin/pendientes/pendientes/'.$pid.'/editar')
                             );
                             break;
                }
            }
        }
        return $filas;
    }
    
    /**
     * Muestra todos o sólo una parte de los pendientes en la BD
     */
    function pendientes_ver($area = 0)
    {
        /* tipos dependiente */
        $tipos = array(1 => "Avisos",
                       2 => "Folios pendientes de enviar notificaciones",
                       3 => "Folios para seguimiento",
                       4 => "Actividades O.T.");
                       
        /* identificadores y nombres de las áreas */
        $areas = array(1 => "Plataformas",
                       2 => "Datos",
                       3 => "Transmisión",
                       4 => "Aplicaciones",
                       5 =>  "Svas",
                       6 => "Accesos");
        
        /* estados de los pendientes */
        $estados = array(1 => "En ejecución",
                         2 => "Exitosa",
                         3 => "Sin éxito",
                         4 => "Pendiente de ejecutar");

        /* estilo del texto */
        $span  = '<span style="display: block; clear: both; font-size: 12px;">';
        $spanr = '<span style="color: red">';
        $spane = '<span style="display: block; clear: both; color: gray; '.
                 'font-size: 10px; margin-bottom: 8px;">';
        $h3    = '<h3 style="color: #0076BA; font-weight: bold; font-size: 16px; margin-top: 15px;">';
        
        if($area == 0)
        {
            global $user;
            $area = $user->area;
        }
        
        /* cambia el título de la página */
        drupal_set_title("Lista de pendientes; área ".$area.", ". $areas[$area]);
        
        $sql = "SELECT p.*, u.name ".
               "FROM {pendientes} p, {users} u , {areas} a ".
               "WHERE p.autor = u.uid AND p.autor = a.id_usuario AND a.id_area = ".
               $area." ORDER BY p.tipo, p.region";
        $r = db_query($sql);

        $d = array(0, 1, 1, 1, 1);
        $cont_max = 5;
        $txt = "";
        while($p = db_fetch_array($r))
        {
            /* muestra cierta información, dependiendo del tipo de pendiente */
            if($d[$p['tipo']])
            {
                if($p['tipo'] != $tipo_ant)
                {
                    $tipo_ant = $p['tipo'];
                    $txt .= $h3.$tipos[$p['tipo']].'</h3>';
                }
                
                switch($p['tipo'])
                {
                    case 1: $txt .= $p['nota'];
                            break;
                    case 2: $txt .= $span.'<b>Región: </b>'.$p['region'].'</span>'.
                                    $span.'<b>Elemento de red: </b>'.$p['elemento'].'</span>'.
                                    $span.'<b>Folio: </b>'.
                                    l($p['folio'],
                                    'http://10.225.173.209/GUIO_V3/Folios/P_Folio.cfm?KEY_FOLIO='.
                                    $p['folio'],
                                    array('attributes' => array('target' => 'blank')))
                                    .'</span>'.
                                    (($p['nota'] != "") ?
                                    $span.'<b>Nota: </b>'.$p['nota'].'</span>' :
                                    "").
                                    (($p['ultima_modificacion'] != "") ?
                                    $span.'<b>Última notificación: </b>'.
                                    $p['ultima_notificacion'].'</span>' :
                                    "");
                            break;
                    case 3: $txt .= $span.'<b>Región: </b>'.$p['region'].'</span>'.
                                    $span.'<b>Elemento de red: </b>'.$p['elemento'].
                                    '</span>'.
                                    $span.'<b>Folio: </b>'.
                                    l($p['folio'],
                                    'http://10.225.173.209/GUIO_V3/Folios/P_Folio.cfm?KEY_FOLIO='.
                                    $p['folio'],
                                    array('attributes' => array('target' => 'blank')))
                                    .'</span>'.
                                    (($p['nota'] != "") ?
                                    $span.'<b>Nota: </b>'.$p['nota'].'</span>' :
                                    "");
                            break;
                    case 4: $txt .= $span.'<b>Región: </b>'.$p['region'].'</span>'.
                                    $span.'<b>Orden de trabajo: </b>'.
                                    l($p['orden'],
                                    'http://10.225.173.25/OT/Orden/P_Orden.cfm?ID_ORDEN='.
                                    $p['orden'],
                                    array('attributes' => array('target' => 'blank'))).
                                    '</span>'.
                                    $span.'<b>Estado: </b>'.$spanr.
                                    $estados[$p['estado']].'</span></span>'.
                                    $span.'<b>Elemento de red: </b>'.$p['elemento'].
                                    '</span>'.
                                    (($p['nota'] != "") ?
                                    $span.'<b>Nota: </b>'.$p['nota'].'</span>' :
                                    "");
                            break;
                }
                
                $txt .= $spane.'Enviado por: '.l($p['name'], 'user/'.$p['autor']).
                        ', última modificación: '.
                        format_date($p['ultima_modificacion'], 'small').
                        '</span>';
            }
        }
        
        if($txt == '')
            $txt = "No hay pendientes que mostrar.";
        return $txt;
    }
?>
